package com.mall.api.product.fallback;

import com.mall.api.product.ProductFeignClient;
import com.mall.api.product.dto.ProductDTO;
import com.mall.common.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class ProductFeignFallback implements ProductFeignClient {

    @Override
    public Result<ProductDTO> getProductById(Long id) {
        log.error("商品服务调用失败，进入熔断降级处理，getProductById，id: {}", id);
        return Result.error(500, "商品服务不可用");
    }

    @Override
    public Result<Void> createProduct(ProductDTO productDTO) {
        log.error("商品服务调用失败，进入熔断降级处理，createProduct，name: {}", productDTO.getName());
        return Result.error(500, "商品服务不可用");
    }

    @Override
    public Result<Void> updateProduct(ProductDTO productDTO) {
        log.error("商品服务调用失败，进入熔断降级处理，updateProduct，id: {}", productDTO.getId());
        return Result.error(500, "商品服务不可用");
    }

    @Override
    public Result<Void> deleteProduct(Long id) {
        log.error("商品服务调用失败，进入熔断降级处理，deleteProduct，id: {}", id);
        return Result.error(500, "商品服务不可用");
    }

    @Override
    public Result<Void> updateStock(Long id, Integer stock) {
        log.error("商品服务调用失败，进入熔断降级处理，updateStock，id: {}, stock: {}", id, stock);
        return Result.error(500, "商品服务不可用");
    }

    @Override
    public Result<Integer> getStock(Long id) {
        log.error("商品服务调用失败，进入熔断降级处理，getStock，id: {}", id);
        return Result.error(500, "商品服务不可用");
    }
} 